package com.linkgie.galaxyframework.crypto;

/**
 * 密码地址生成器；
 * 
 * @author huanghaiquan
 *
 */
public interface CryptoAddressGenerator<T, A extends CryptoAddress> {

	/**
	 * 地址生成算法；
	 * @return
	 */
	String getAlogrithm();

	/**
	 * 根据指定的输入生成密码地址；
	 * <p>
	 * 
	 * 密码地址生成算法的实现需要做出以下保证：<br>
	 * 1. 相同的输入内容产生相同的输出地址； <br>
	 * 2. 根据输出地址无法逆推出对应的输入内容；<br>
	 * 
	 * @param input 输入的字节序列；不允许为空；
	 * @return
	 */
	A generate(T input);


}
